#pragma once

#include <iostream>
#include <functional>
#include <vector>

using func = std::function<void()>;

// 返回具体任务函数的工厂函数
func func1() {
    return []() { // 返回lambda表达式
        std::cout << "刷新日志" << std::endl;
    };
}

func func2() {
    return []() {
        std::cout << "刷新屏幕" << std::endl;
    };
}

func func3() {
    return []() {
        std::cout << "读取键盘" << std::endl;
    };
}

func func4() {
    return []() {
        std::cout << "控制鼠标" << std::endl;
    };
}

// 加载任务到容器
void loadTask(std::vector<func>* task) {
    // 调用工厂函数获取具体任务函数对象
    task->push_back(func1());
    task->push_back(func2());
    task->push_back(func3());
    task->push_back(func4());
}